package com.fzu.express.entity;

import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * <p>
 * 
 * </p>
 *
 * @author zyq
 * @since 2022-10-27
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("express_order")
public class Order implements Serializable {

    private static final long serialVersionUID = 1L;

    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 订单号
     */
    private String orderNo;

    /**
     * 发件人ID，关联web_user.id
     */
    private Long senderId;

    /**
     * 发件人姓名
     */
    private String senderName;

    /**
     * 发件人联系方式
     */
    private String senderPhone;

    /**
     * 发件人省份
     */
    private String senderProvince;

    /**
     * 发件人城市
     */
    private String senderCity;

    /**
     * 发件人县区
     */
    private String senderTown;

    /**
     * 发件人详细地址
     */
    private String senderDetail;

    /**
     * 收件人姓名
     */
    private String receiverName;

    /**
     * 收件人联系方式
     */
    private String receiverPhone;

    /**
     * 收件省份
     */
    private String receiverProvince;

    /**
     * 收件城市
     */
    private String receiverCity;

    /**
     * 收件县区
     */
    private String receiverTown;

    /**
     * 收件详细地址
     */
    private String receiverDetail;

    /**
     * 订单状态：0-待揽件，1-运输中，2-待取件，3-派送中，4-已送达，5-已取消
     */
    private Integer status;

    /**
     * 快件重量
     */
    private BigDecimal weight;

    /**
     * 快件金额
     */
    private BigDecimal amount;

    /**
     * 支付方式：0-寄付，1-到付
     */
    private Integer payment;

    /**
     * 快件类型，关联express_type.id
     */
    private Long typeId;

    /**
     * 快件备注
     */
    private String remark;

    /**
     * 创建时间
     */
    @TableField(fill = FieldFill.INSERT)
    private Date createTime;

    /**
     * 更新时间
     */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Date updateTime;

    /**
     * 完成时间
     */
    private Date finishTime;

    /**
     * 关闭时间
     */
    private Date closeTime;

    /**
     * 收件快递员，关联web_user.id
     */
    private Long startCourier;

    /**
     * 派件快递员，关联web_user.id
     */
    private Long endCourier;

    /**
     * 收件网点，关联express_outlet.id
     */
    private Long startOutlet;

    /**
     * 派件网点，关联express_outlet.id
     */
    private Long endOutlet;

    /**
     * 退回标记，0-正常件，1-退回件
     */
    private Integer backTag;


}
